principal ideal domain (PID)